1. Field of the Invention
The present invention relates to the compression and transmission of video signals, and, in particular, to the compression and transmission of multiple compressed video streams over a single, shared communication channel.
2. Description of the Related Art
Whenever two or more different video applications share a single communication channel having a finite bandwidth, management of the allocation of that bandwidth to those different applications needs to be performed, at least at some level. In a fixed multiplexing scheme, each application is assigned a fixedxe2x80x94although possibly differentxe2x80x94allocation of the total available bandwidth, where the sum of the fixed bandwidth allocations is not greater than total channel bandwidth. Fixed multiplexing schemes are appropriate for video applications having constant or at least relatively constant bit rates, or for situations in which the total available channel bandwidth is greater than the sum of the maximum bandwidth requirements for all of the video applications.
Many video applications, on the other hand, have variable bit rates. A conventional MPEG-2 video encoder, for example, encodes sequences of video images by applying a repeating pattern of frame types referred to as the group of picture (GOP) structure. For example, a typical 15-frame GOP structure may be (IBBPBBPBBPBBPBB), where I represents a frame encoded using only intra-frame encoding techniques, P represents a frame encoded using inter-frame encoding techniques based on a previous anchor (i.e., the previous I or P) frame, and B represents a frame encoded using inter-frame encoding techniques based on either a previous anchor frame (forward prediction), a subsequent anchor frame (backward prediction), or an average of previous and subsequent anchor frames (interpolated prediction). B frames are never used as anchor (i.e., reference) frames for encoding other frames.
In typical video sequences, I frames require significantly more bits to encode than P and B frames. In addition, since predictive encoding schemes, like MPEG-2, take advantage of similarities between frames, frames associated with scene changes in video imagery, where frame-to-frame similarity is often low, will also typically require more bits to encode than those frames in the middle of a scene. As such, the compressed video bitstream for a typical video sequence encoded based on a video compression scheme like MPEG-2 that relies on a relatively steady GOP structure will have a variable bit rate profile typically consisting of relatively narrow xe2x80x9cpeaksxe2x80x9d of high bit rate corresponding to I frames and/or scene changes, separated by relatively wide xe2x80x9cvalleysxe2x80x9d of lower, more uniform bit rate corresponding to sequences of P and B frames.
For such non-uniform bit-rate video applications, fixed multiplexing schemes which allocate bandwidth based on peak bit-rate requirements may be inefficient, because most of the time (i.e., the time corresponding to the lower bit-rate valleys), any given video application will not be using its full allocation of bandwidth. For such applications, statistical multiplexing may be applied to improve the efficiency of bandwidth usage.
Statistical multiplexing can be defined as:
(a) the control required for allocation of bits in proportion to the complexity and importance of each video application within the limits of control allowed by each video encoder, such that:
(i) the aggregate instantaneous bit rate is less than or equal to the channel capacity;
(ii) the minimum quality of service (QoS) requirements for all applications are met; and
(iii)the quality is maximized for applications in the order of their importance; and
(b) the control required in pathological cases, where the aggregate instantaneous bit rate is greater than the channel capacity, to minimize the loss in QoS for as minimal a number of applications as possible.
To achieve these levels of control, statistical multiplexing takes into account the variations in bit rate of different video applications when allocating transmission bandwidth.
Statistical multiplexing schemes often involve the implementation of a dynamic bandwidth manager that controls the allocation of bandwidth to the various video applications in real time. Such bandwidth managers are able to monitor the real-time bit-rate demands of the different video applications to control the transmission of data from those different applications over the shared communication channel.
For conventional video applications, such as video streaming which involves the one-way transmission of a compressed video bitstream from a video server to one or more remote users, the quality of service depends on the fidelity and uniformity of the video playback, where collectively high fidelity and high uniformity typical mean (1) uniform, full frame rates and (2) uniform high image quality both within each frame and between consecutive frames. For these applications, the end-to-end latency involved in the processing is of less importance. As such, the primary concern of bandwidth managers for conventional statistical multiplexing schemes involving conventional video applications is to ensure that there will always be sufficient data in the receiver buffer at each user node to provide high fidelity, uniform video playback to each user.
High levels of latency, however, are not acceptable for all video applications. Many interactive video applications, such as video conferencing and distributed video games where two or more remotely located users compete against each other, require relatively low levels of latencyxe2x80x94in addition to high levels of uniformity and fidelityxe2x80x94for acceptable QoS levels. Moreover, in many multiplexing situations, different video applications will have different latency requirements. Furthermore, the latency requirements of even some individual video applications, such as web browsing, may vary over time, when the type of video service changes during the application session. For all these situations, conventional multiplexing schemesxe2x80x94even conventional statistical multiplexing schemesxe2x80x94will not provide acceptable QoS levels, because they do not take into account the different and varying levels of latency required by the different video applications being multiplexed for transmission over a shared communication channel.
The present invention is directed to statistical multiplexing schemes that do take into account the corresponding latency requirements of different video applications (in addition to other factors such as uniformity and fidelity of video playback) when managing the bandwidth of a shared communication channel. According to embodiments of the present invention, the statistical multiplexing takes latency into account to provide (a) traffic control (i.e., the control of how the data for multiple compressed video bitstreams is transmitted over the shared communication channel) as well as (b) some level of control over the actual compression processing used to generate those bitstreams for the different video applications.
According to one embodiment, the present invention is a method for controlling transmission over a shared communication channel of multiple compressed video bitstreams generated by a plurality of video encoders and corresponding to multiple video applications, comprising the steps of (a) receiving information for each compressed video bitstream wherein at least two of the video applications have different latency requirements; (b) controlling the transmission of data from the multiple compressed video bitstreams over the shared communication channel taking into account the information for each compressed video bitstream and the latency requirement of each corresponding video application; and (c) adaptively controlling compression processing of at least one of the video encoders taking into account the information for the corresponding compressed video bitstream and the latency requirement of the corresponding video application.
According to another embodiment, the present invention is a video processing system for controlling transmission of multiple compressed video bitstreams corresponding to multiple video applications over a shared communication channel, comprising (a) a plurality of video encoders, each configured to generate a different compressed video bitstream for a different video application, wherein at least two of the video applications have different latency requirements; and (b) a controller, configured to (1) receive the compressed video bitstreams from the video encoders; (2) control the transmission of data from the multiple compressed video bitstreams over the shared communication channel taking into account information for each compressed video bitstream and the latency requirement of each corresponding video application; and (3) adaptively control the compression processing of at least one of the video encoders taking into account the information for the corresponding compressed video bitstream and the latency requirement of the corresponding video application.
According to yet another embodiment, the present invention is a controller for controlling transmission of multiple compressed video bitstreams corresponding to multiple video applications over a shared communication channel, in a video processing system further comprising a plurality of video encoders, each configured to generate a different compressed video bitstream for a different video application, wherein at least two of the video applications have different latency requirements, wherein the controller is configured to (1) receive the compressed video bitstreams from the video encoders; (2) control the transmission of data from the multiple compressed video bitstreams over the shared communication channel taking into account information for each compressed video bitstream and the latency requirement of each corresponding video application; and (3) adaptively control the compression processing of at least one of the video encoders taking into account the information for the corresponding compressed video bitstream and the latency requirement of the corresponding video application.